90 F=(1=1) 100 GOSUB 2250 110 DATA JAN,FEB,MAR,APR,MAY,JUN 120 DATA JUL,AUG,SEP,OCT,NOV,DEC 130 DATA SUNDAY,MONDAY,TUESDAY,WEDNESDAY 140 DATA THURSDAY,FRIDAY,SATURDAY 150 DIM M$(12),W$(6),L$(100) 160 FOR J=1 TO 12 170 READ M$(J) 180 NEXT J 190 FOR J=0 TO 6 200 READ W$(J) 210 NEXT J 220 PRINT "EVENT CALENDAR" 230 IF F=0 THEN 260 240 C=1 250 GOSUB 3010 255 IF E=0 THEN 260 256 F=0 260 PRINT "TODAY'S DATE:" 270 Y8=Y9 280 GOSUB 1670 290 M8=M 300 D8=D 310 IF M8>=M9 THEN 330 320 Y8=Y9+1 330 IF M8<>M9 OR D8>=D9 THEN 350 340 Y8=Y9+1 350 IF Y8<=Y9 THEN 370 360 PRINT "HAPPY NEW YEAR" 370 IF F THEN 400 380 PRINT "YEAR"; 390 INPUT Y8 400 D9$=RIGHT$(STR$(100+M9),2)+"/" 410 D9$=D9$+RIGHT$(STR$(100+D9),2) 420 IF F THEN 440 430 D9$=D8$ 440 F=(1=1) 450 GOSUB 1960 460 PRINT "PAST EVENTS: "; 470 IF L0>=0 THEN 500 480 PRINT "NONE" 490 GOTO 650 500 PRINT L0+1 510 GOSUB 4010 520 F9=-1 530 FOR J=0 TO L0 540 IF MID$(L$(J),6,1)="/" THEN 570 550 L$(L9)=L$(J) 560 L9=L9+1 570 NEXT J 580 L8=L0+1 590 FOR J=L8 TO L9-1 600 L$(J-L8)=L$(J) 610 NEXT J 620 L9=L9-L8 630 L8=0 640 L=L9 650 F=0 660 F9=0 670 D9$=D8$ 680 L=L9-L8 690 IF L<>0 THEN 710 700 PRINT "NO FUTURE EVENTS" 710 IF L=0 THEN 730 720 PRINT L;" FUTURE EVENTS" 730 PRINT 740 PRINT "1. SEE FUTURE EVENTS" 750 PRINT "2. ADD NEW EVENT" 760 PRINT "3. CANCEL EVENT" 770 PRINT "4. SEARCH FOR EVENT" 780 PRINT "5. QUIT" 790 PRINT 800 PRINT "...YOUR CHOICE (1-5)"; 810 INPUT A 820 PRINT 830 ON A GOTO 850,940,1210,1450,1570 840 GOTO 730 850 PRINT "AHEAD TO DATE:" 860 GOSUB 1670 870 GOSUB 1960 880 IF L0<>-1 THEN 910 890 PRINT "NO EVENTS" 900 GOTO 920 910 GOSUB 4010 920 PRINT L9-L0-1;" OTHER FUTURE EVENTS" 930 GOTO 730 940 PRINT "ANNUAL OR ONE-TIME (A/O)" 950 INPUT P$ 960 A=0 970 P$=LEFT$(P$,1) 980 IF P$="O" THEN 1010 990 A=1 1000 IF P$<>"A" THEN 730 1010 GOSUB 1670 1020 Y$="/"+RIGHT$(STR$(101+Y8),2) 1030 IF D8$<=D9$ THEN 1050 1040 Y$="/"+RIGHT$(STR$(100+Y8),2) 1050 IF A<>1 THEN 1070 1060 Y$="" 1070 GOSUB 1960 1080 IF L9-1LEFT$(L$(J),5) THEN 1300 1260 L1=J 1270 IF L0<>-1 THEN 1290 1280 L0=J 1290 PRINT J;": ";L$(J) 1300 NEXT J 1310 IF L0<>-1 THEN 1340 1320 PRINT "NO EVENTS" 1330 GOTO 730 1340 PRINT 1350 PRINT " DELETE WHICH EVENT ABOVE"; 1360 INPUT A 1370 IF AL1 THEN 730 1380 FOR J=A TO L9-1 1390 L$(J)=L$(J+1) 1400 NEXT J 1410 L9=L9-1 1420 F9=-1 1430 PRINT " ... DELETED" 1440 GOTO 680 1450 PRINT "SEARCH FOR"; 1460 INPUT P$ 1470 P=LEN(P$) 1480 FOR J=0 TO L9-1 1490 A=7 1500 IF MID$(L$(J),6,1)<>"/" THEN 1520 1510 A=10 1520 IF A+P-1>LEN(L$(J)) OR P$<>MID$(L$(J),A,P) THEN 1540 1530 PRINT L$(J) 1540 NEXT J 1550 PRINT " END OF SEARCH" 1560 GOTO 730 1570 IF F9<>0 THEN 1590 1575 IFOTHENCLOSE15 1580 END 1590 PRINT "READY TO WRITE NEW EVENTS FILE (Y/N)" 1600 INPUT P$ 1610 IF LEFT$(P$,1)="Y" THEN 1630 1620 STOP 1630 D9$=D9$+"/" 1640 D9$=D9$+RIGHT$(STR$(Y8+100),2) 1650 C=2 1660 GOTO 3010 1670 M=0 1680 PRINT "MONTH"; 1690 INPUT MM$ 1700 M=VAL(MM$) 1710 MM$=LEFT$(MM$+"XX",3) 1720 IF M=0 THEN 1760 1730 IF M<1 OR M>12 THEN 1670 1740 PRINT M$(M) 1750 GOTO 1810 1760 FOR J=1 TO 12 1770 IF MM$<>M$(J) THEN 1790 1780 M=J 1790 NEXT J 1800 IF M<1 OR M>12 THEN 1670 1810 PRINT "DAY"; 1820 INPUT D 1830 IF D<1 OR D>31 THEN 1670 1840 D8$=RIGHT$(STR$(100+M),2)+"/" 1850 D8$=D8$+RIGHT$(STR$(100+D),2) 1860 Y=Y8 1870 IF D8$>D9$ THEN 1890 1880 Y=Y8+1 1890 GOSUB 2150 1900 IF LEN(LL$)<=0 THEN 1920 1910 PRINT "(";W$(W);")" 1920 RETURN 1930 C=1 1940 GOSUB 3010 1950 RETURN 1960 LL$=CHR$(255) 1970 L0=-1 1980 IF L<>0 THEN 2000 1990 RETURN 2000 V$=D8$+LL$ 2010 WW$=D9$ 2020 IF F<>0 THEN 2040 2030 WW$=D9$+LL$ 2040 F1=(WW$>=V$) 2050 FOR J=L8 TO L9-1 2060 F2=(L$(J)>WW$) 2070 F3=(V$>L$(J)) 2080 F0=F2 AND F3 2090 IF F1=0 THEN 2110 2100 F0=F2 OR F3 2110 IF F0=0 THEN 2130 2120 L0=J 2130 NEXT J 2140 RETURN 2150 IF Y>=85 THEN 2170 2160 Y=Y+100 2170 M1=M+1 2180 M2=INT(1/M1+.7) 2190 M3=Y-M2 2200 M4=M1+12*M2 2210 N=INT(M4*30.6001)+INT(M3*365.25)+D 2220 M6=INT(N/7) 2230 W=N-7*M6 2240 RETURN 2250 PRINT CHR$(147)CHR$(5) 2260 RETURN 3000 REM INPUT/OUTPUT ROUTINE 3010 F$="EVENTS" 3020 PRINT"DISK OR CASSETTE (D/C)?" 3030 GETA$:IF((A$<>"C")AND(A$<>"D"))ORA$=""THEN3030 3040 IFA$="D"THEN3060 3050 D1=0:G$="":GOTO3070 3060 F$="@0:"+F$:D1=1 3070 IFC=2THEN3160 3080 IFD1=1THENG$=",S,R" 3090 OPEN1,1+7*D1,8*D1,F$+G$:GOSUB3220:IFETHENCLOSE1:GOTO3150 3100 INPUT#1,LL$:IF LEN(LL$)<>8 THEN PRINT LL$;"?":GOTO 3140 3110 M=VAL(LEFT$(LL$,2)):D=VAL(MID$(LL$,4,2)):Y0=VAL(MID$(LL$,7,2)) 3120 M9=M:D9=D:Y9=Y0:L=0:PRINT "LAST ACCESS: ";LL$ 3130 INPUT#1,L$(L):L=L+1:IF ST=0 THEN 3130 3140 CLOSE1:GOSUB3220 3150 L8=0:L9=L:RETURN 3160 IFD1=1THENG$=",S,W" 3170 OPEN1,1+7*D1,1+7*D1,F$+G$:GOSUB3220:IFETHENCLOSE1:CLOSE15:END 3180 PRINT#1,D9$;CHR$(13); 3190 FORJ=0TOL9-1:PRINT#1,L$(J);CHR$(13);:NEXTJ 3200 GOSUB3220:CLOSE1:GOSUB3220:IFOTHENCLOSE15 3210 END 3220 IFD1=0THENRETURN 3230 IFO=0THENOPEN15,8,15:O=1 3240 INPUT#15,E,B$:IFETHENPRINTB$:CLOSE15:O=0 3250 RETURN 4000 REM PRINT ROUTINE 4010 D$="":P=3 4020 INPUT "WANT EVENTS ON PRINTER (Y/N)";P$ 4030 IF LEFT$(P$,1)<>"Y" THEN 4050 4040 P=4 4050 OPEN 3,P 4060 FOR J=L8 TO L0 4070 IF D$=LEFT$(L$(J),5) THEN 4150 4080 D$=LEFT$(L$(J),5) 4090 M=VAL(LEFT$(D$,2)) 4100 D=VAL(MID$(D$,4,2)) 4110 Y=Y8:IF D$<=D9$ THEN Y=Y8+1 4120 GOSUB 2150 4130 PRINT#3,W$(W);" "; 4140 PRINT#3,M$(M);D 4150 PRINT#3," ";MID$(L$(J),6) 4160 NEXT J 4170 CLOSE 3 4180 RETURN